package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

/**
 * 集合练习
 */
public class Exercise01 {

    public static void main(String[] args) {

        /*
            封装一个新闻类，包含标题和内容属性 提供get set方法 重写 toString 方法，打印对象时只打印标题
            只提供一个带参数的构造器，实例化对象时，只初始化标题，实例化如下两个对象
            1)新闻一：新冠确诊病例超千万，数百万印度教信徒赴恒河"圣浴"引民众担忧
            2)新闻二：男子突然想起2个月前钓的鱼还在网兜里，捞起一看赶紧放生
            将新闻对象添加到 ArrayList 集合中，并且进行倒序遍历
            在遍历集合过程中，对新闻标题进行处理，超过15字的只保留前15个，然后在后边加"..."
            在控制台打印遍历输出经过处理的新闻标题
         */

        ArrayList list = new ArrayList();

        News n1 = new News("新闻一", "新冠确诊病例超千万,数百万印度教信徒赴恒河\"圣浴\"引民众担忧");
        News n2 = new News("新闻二", "男子突然想起2个月前钓的鱼还在网兜里,捞起一看赶紧放生");

        list.add(n1);
        list.add(n2);

        Collections.reverse(list);

        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object obj = iterator.next();
            News news = (News) obj;
            if (news.getContent().length() > 15) {
                String str = news.getContent().substring(0, 15);
                System.out.println(news.getTitle() + ":" + str + "...");
            } else {
                System.out.println(news.toString());
            }
        }
    }
}

class News {

    private String title;

    private String content;

    public News(String title, String content) {
        this.title = title;
        this.content = content;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Override
    public String toString() {
        return "News{" +
                "title='" + title + '\'' +
                ", content='" + content + '\'' +
                '}';
    }
}